/* Subject Desgin Pattern - taken from the presentation
 *
 */
#pragma once

#include <vector>
#include <string>
#include "Observer.h"

class Observer;
class Subject{
public:
	virtual ~Subject();

	virtual void Attach(Observer* observer);
	virtual void Detach(Observer* observer);
	virtual void Notify(const std::string& message);

protected:
	Subject();
private:
	std::vector<Observer*> m_observers;
};